Skip to content

Conversation

@caiolima
Copy link
Contributor

The idea is to back port this commit to also expose Total Allocated bytes in V8's HeapStatistics API.

Original commit message:

[api] Adding total allocated bytes in HeapStatistics

This change exposes total allocated bytes in v8::HeapStatistics API by
introducing a new total_allocated_bytes() method that tracks all heap
allocations since an Isolate creation.

The implementation adds:
- uint64_t total_allocated_bytes_ field to HeapStatistics.
- An atomic total allocation counter is stored in the Heap class.
- The counter is incremented whenever a RestLab is called. This approach can overestimate the total allocation for cases where the LAB is not fully used, but the leftover compared to the LAB itself is quite small, so it seems tolerable.

Design doc reference:
https://docs.google.com/document/d/1O4JPsoaxTQsX_7T5Fz4rsGeHMiM16jUrvDuq9FrtbNM

Change-Id: Ic531698aaeb1578f943b7fdd346b9159ffd9b6c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6996467
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dmitry Bezhetskov <dima00782@gmail.com>
Cr-Commit-Position: refs/heads/main@{#103296}

Refs: v8/v8@fe81545

Original commit message:

    [api] Adding total allocated bytes in HeapStatistics

    This change exposes total allocated bytes in v8::HeapStatistics API by
    introducing a new total_allocated_bytes() method that tracks all heap
    allocations since an Isolate creation.

    The implementation adds:
    - uint64_t total_allocated_bytes_ field to HeapStatistics.
    - An atomic total allocation counter is stored in the Heap class.
    - The counter is incremented whenever a RestLab is called. This approach can overestimate the total allocation for cases where the LAB is not fully used, but the leftover compared to the LAB itself is quite small, so it seems tolerable.

    Design doc reference:
    https://docs.google.com/document/d/1O4JPsoaxTQsX_7T5Fz4rsGeHMiM16jUrvDuq9FrtbNM

    Change-Id: Ic531698aaeb1578f943b7fdd346b9159ffd9b6c9
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6996467
    Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
    Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Dmitry Bezhetskov <dima00782@gmail.com>
    Cr-Commit-Position: refs/heads/main@{#103296}

Refs: v8/v8@fe81545
Co-authored-by: Caio Lima <caiolima@igalia.com>
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/gyp
  • @nodejs/security-wg
  • @nodejs/v8-update

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. v8 engine Issues and PRs related to the V8 dependency. labels Oct 27, 2025
@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Oct 27, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Oct 27, 2025
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@aduh95 aduh95 added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Nov 2, 2025
@joyeecheung joyeecheung added the commit-queue Add this label to land a pull request using GitHub Actions. label Nov 3, 2025
@nodejs-github-bot nodejs-github-bot added commit-queue-failed An error occurred while landing this pull request using GitHub Actions. and removed commit-queue Add this label to land a pull request using GitHub Actions. labels Nov 3, 2025
@nodejs-github-bot
Copy link
Collaborator

Commit Queue failed
- Loading data for nodejs/node/pull/60429
✔  Done loading data for nodejs/node/pull/60429
----------------------------------- PR info ------------------------------------
Title      deps: V8: backport fe81545e6d14 (#60429)
   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
Branch     caiolima:backport-total-allocated-bytes -> nodejs:main
Labels     build, v8 engine, author ready, needs-ci
Commits    1
 - deps: V8: backport fe81545e6d14
Committers 1
 - Caio Lima <caiolima@igalia.com>
PR-URL: https://github.com/nodejs/node/pull/60429
Refs: https://github.com/v8/v8/commit/fe81545e6d14397cabb39ba3a5163eedf7624bb1
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/60429
Refs: https://github.com/v8/v8/commit/fe81545e6d14397cabb39ba3a5163eedf7624bb1
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Mon, 27 Oct 2025 12:14:56 GMT
   ✔  Approvals: 1
   ✔  - Joyee Cheung (@joyeecheung) (TSC): https://github.com/nodejs/node/pull/60429#pullrequestreview-3384874336
   ✘  This PR needs to wait 0 more hours to land (or 0 hours if there is one more approval)
   ✔  Last GitHub CI successful
   ℹ  Last Full PR CI on 2025-10-28T13:02:09Z: https://ci.nodejs.org/job/node-test-pull-request/69925/
- Querying data for job/node-test-pull-request/69925/
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/19033359348

@joyeecheung joyeecheung added commit-queue Add this label to land a pull request using GitHub Actions. and removed commit-queue-failed An error occurred while landing this pull request using GitHub Actions. labels Nov 3, 2025
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Nov 3, 2025
@nodejs-github-bot nodejs-github-bot merged commit f9a83ff into nodejs:main Nov 3, 2025
89 of 90 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in f9a83ff

@caiolima caiolima deleted the backport-total-allocated-bytes branch November 3, 2025 17:30
aduh95 pushed a commit that referenced this pull request Nov 5, 2025
Original commit message:

    [api] Adding total allocated bytes in HeapStatistics

    This change exposes total allocated bytes in v8::HeapStatistics API by
    introducing a new total_allocated_bytes() method that tracks all heap
    allocations since an Isolate creation.

    The implementation adds:
    - uint64_t total_allocated_bytes_ field to HeapStatistics.
    - An atomic total allocation counter is stored in the Heap class.
    - The counter is incremented whenever a RestLab is called. This approach can overestimate the total allocation for cases where the LAB is not fully used, but the leftover compared to the LAB itself is quite small, so it seems tolerable.

    Design doc reference:
    https://docs.google.com/document/d/1O4JPsoaxTQsX_7T5Fz4rsGeHMiM16jUrvDuq9FrtbNM

    Change-Id: Ic531698aaeb1578f943b7fdd346b9159ffd9b6c9
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6996467
    Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
    Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Dmitry Bezhetskov <dima00782@gmail.com>
    Cr-Commit-Position: refs/heads/main@{#103296}

Refs: v8/v8@fe81545
Co-authored-by: Caio Lima <caiolima@igalia.com>
PR-URL: #60429
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs that have at least one approval, no pending requests for changes, and a CI started. build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. v8 engine Issues and PRs related to the V8 dependency.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants